// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env:cloud.DYNAMIC_CURRENT_ENV
})

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const myid = wxContext.OPENID
  const db = cloud.database()
  const _ = db.command
  try{
  const info =  await db.collection('users')
    .where({
    _openid:myid
    })
    .get()
  const id_list = info.data[0].history
  var flag=true
  var index=0
  var value=0
  for(var i=0;i<id_list.length;i++){
    if(id_list[i].id==event._id){
      index=i
      value=id_list[i].id
      flag=false
    }
  }
  if(flag){
    await db.collection('users')
    .where({
     _openid:myid
    })
    .update({
      data:{
        history:_.push({
          each:[{id:event._id}],
          slice: -20,
        })
      }
    })
  }
  else{
    for(var i=index;i<id_list.length-1;i++){
      id_list[i].id=id_list[i+1].id
    }
    id_list[id_list.length-1].id=value
    await db.collection('users')
    .where({
      _openid:myid
    })
    .update({
      data:{
        history:id_list
      }
    })
    
  }
  //注意不使用_.push(),因为addToSet可以自动去重，避免多次添加
  } catch (error) {
    console.error(error)
  }
}